// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once

#include "targetver.h"

#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>

// C RunTime Header Files
#define _USE_MATH_DEFINES
#include <cmath>
#include <cstdlib>
#include <cstdio>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <cstring>
#include <cassert>
#include <ctime>

#include <iostream>
#include <string>

// gl
//#define GLEW_STATIC
#include "gl/glew.h"

// images
// this baby is huge. praise the lord for precompiled headers!
#pragma warning(push)
#pragma warning(disable:4267 4244)
#include "CImg.h"
#pragma warning(pop)

// glfx
#include "glfx/glfx.h"

#if 0
// my own
#include "mymath.h"
#include "ublocks.h"
#include "EggNineScene.h"
#include "mesh.h"

// TODO Remove this header from here, since it gets bound to PCH and there's no place for it there
#include "cmnBlocks.h"
#endif

#define GRAPHICS_PATH(x) "../engine/graphics/" x
#define member_size(type, member) sizeof(((type *)0)->member)
#define member_offset(type, member) ((unsigned)(&((type *)0)->member))
